import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { MessageVO, TableResult } from './types';


/**
 * 获取消息红点的列表
 * @returns 第一位是红点的总数
            第二位是评论红点的总数
            第三位是点赞红点的总数
            第四位是收藏红点的总数
 */
export const getRedCount = (): AxiosPromise<number[]> => {
  return request({
    url: '/api/message/redCount',
    method: 'get',
  });
};

/**
 * 获取分页获取消息列表
 * @param query 查询条件
 * @param type 消息类型
 * @returns 消息列表
 */
export const pageList = (query?: any, type?: string): AxiosPromise<TableResult<MessageVO>> => {
  return request({
    url: '/api/message/page/list',
    method: 'get',
    params: {query, type}
  });
};

/**
 * 阅读消息
 * @param ids 消息ID列表
 * @returns 
 */
export const readMessage = (ids: number[]): AxiosPromise<void> => {
  return request({
    url: '/api/message/read',
    method: 'post',
    data: ids
  });
};

/**
 * 删除消息
 * @param ids 消息ID列表
 * @returns 
 */
export const deleteMessage = (ids: number[]): AxiosPromise<void> => {
  return request({
    url: '/api/message/delete',
    method: 'post',
    data: ids
  });
};
